#pragma once
//守护进程化
#include <unistd.h>
#include<stdlib.h>
#include"log.hpp"
#include"error.hpp"
void Daemon()
{
    signal(SIGPIPE,SIG_IGN);
    signal(SIGCHLD,SIG_IGN);
    Log log; 
    //子进程去创建新会话
    if(fork() > 0)
        exit(0);
    pid_t ret = setsid();   
    if((int)ret == -1)
    {
        log(ErrorLevel::Fatal,"setsid err:错误码:%d,错误信息:%s",errno,strerror(errno));
        exit(SETSID_ERR);
    }    
    int fd = open("/dev/null",O_RDWR);
    if(fd < 0)
    {
        log(ErrorLevel::Fatal,"open err:错误码:%d,错误信息:%s",errno,strerror(errno));
        exit(OPEN_ERR);
    }
    //关闭输入输出
    dup2(fd,0);
    dup2(fd,1);
    dup2(fd,2);
}